private  subroutine TableGetString(valueIn, tab, keyIn, keyOut, valueOut)  
        
    returns a string from column defined by keyOut corresponding to valueIn 
contained in column defined by keyIn. 
Arguments:
  valueIn  input value
  tab      table to search in
  keyIn    defines header of the column of the input value
  keyOut   defines header of the column of the output value
    Arguments
        
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real(kind=float), | intent(in) |  |  | :: | valueIn |  | 
        
            | type(Table), | intent(in) |  |  | :: | tab |  | 
        
            | character(len=*), | intent(in) |  |  | :: | keyIn |  | 
        
            | character(len=*), | intent(in) |  |  | :: | keyOut |  | 
        
            | character(len=*), | intent(out) |  |  | :: | valueOut |  | 
    
  
    
        
      Variables
      
    
      
        | Type | Visibility | Attributes |  | Name |  | Initial |  | 
    
        
            | type(Column), | public, | POINTER | :: | colIn |  |  |  | 
        
            | type(Column), | public, | POINTER | :: | colOut |  |  |  | 
        
            | logical, | public |  | :: | foundValue |  |  |  | 
        
            | integer(kind=short), | public |  | :: | i |  |  |  | 
        
            | character(len=100), | public |  | :: | string |  |  |  | 
    
  
    
    
    
    
    
    
    
    
    Source Code
    SUBROUTINE TableGetString &
!
( valueIn, tab, keyIn, keyOut, valueOut )
! Module used:
USE StringManipulation, ONLY: &
! imported routines:
StringCompact, StringToUpper, StringToFloat, ToString
USE LogLib, ONLY : &
! Imported Routines:
Catch
IMPLICIT NONE
! Function arguments
! Scalar arguments with intent(in):
REAL (KIND = float),  INTENT (IN) :: valueIn
CHARACTER (LEN = *),  INTENT (IN) :: keyIn
CHARACTER (LEN = *),  INTENT (IN) :: keyOut
! Type defined arguments with intent (in):
TYPE (Table), INTENT (IN) :: tab
! Scalar arguments with intent(in):
CHARACTER (LEN = *), INTENT (OUT) :: valueOut
! Local scalars:
TYPE (Column), POINTER :: colIn
TYPE (Column), POINTER :: colOut
INTEGER (KIND = short) :: i
CHARACTER (LEN = 100)  :: string
LOGICAL                :: foundValue
!------------end of declaration------------------------------------------------
!inizialization
foundValue = .FALSE.
!find columns to be processed
DO i = 1, tab % noCols
  string = StringCompact (StringToUpper (tab % col (i) % header) ) 
  IF ( string == StringToUpper(keyIn) ) THEN
    colIn => tab % col (i) !colIn is an alias of the input column
  ELSE IF ( string == StringToUpper(keyOut) ) THEN  
    colOut => tab % col (i) !colOut is an alias of the output column
  END IF 
END DO
DO i = 1, tab % noRows
  IF ( StringToFloat (colIn % row (i)) == valueIn ) THEN
    foundValue = .TRUE.
    valueOut = colout % row (i)
  END IF
END DO
IF ( .NOT. foundValue ) THEN
  CALL Catch ('error', 'TableLib',   &
       TRIM ( ToString (valueIn) ) // ' not found in table: ' ,  &
	    argument = tab % id )
END IF
RETURN  
END SUBROUTINE TableGetString